package com.arron.observer.improve;
/**
 * 1) 观察者模式设计后，会以集合的方式来管理用户(Observer)，包括注册，移除和通知。
 * 2) 这样，我们增加观察者(这里可以理解成一个新的公告板)，就不需要去修改核心类 WeatherData 不会修改代码， 遵守了 ocp 原则。
 */
public class Client {
    public static void main(String[] args) {
        //创建WeatherData
        WeatherData weatherData = new WeatherData();
        //创建观察者
        CurrentConditions currentConditions = new CurrentConditions();
        Baidu baidu = new Baidu();
        //注册到weatherData
        weatherData.registerObserver(currentConditions);
        weatherData.registerObserver(baidu);
        weatherData.removeObserver(currentConditions);//移除一个观察者
        System.out.println("通知各个注册的观察者");
        weatherData.setData(10f, 100f, 30.3f);


    }
}
